Electronic systems and circuits have made a significant contribution towards the advancement of modern society and are utilized in a number of applications to achieve advantageous results. Numerous electronic technologies such as digital computers, calculators, audio devices, video equipment, and telephone systems have facilitated increased productivity and reduced costs in analyzing and communicating data in most areas of business, science, education and entertainment. These advantageous results are often realized through a variety of extensive and complex applications running on the electronic systems. However, it is often difficult for average end users to have an extensive understanding and knowledge of the features provided by the applications. Users typically find it helpful to be able to access assistance or help on various activities and explanations on how to perform a variety of operations available in a typical application.
The assistance or help is generally made available to a user by a help “mechanism” (e.g., a help system). One example of a help mechanism is “Java Help,” which is an industry standard help system that is platform independent, or “Oracle Help for Java,” which is an extension of “Java Help.” The information contained in a help system is usually organized into helpsets. Helpsets can include a number of different files such as Hyper-Text Markup Language (HTML) source files, image files, style sheets, and Extensible Markup Language (XML) based control files. Typically software applications have associated helpsets that can provide assistance information to a user in a stand alone system and/or online via a network (e.g., the Internet). The “help” can be presented or “rendered” to a user via a variety of mechanisms. For example, a help (rendering) engine can be used by a software application to render an online helpset in a particular environment (e.g., in a Java application, or online).
In addition to providing basic help information, help systems also include a number of features to assist a user in navigating the help information and find instructions for performing a specific desired task. For example, helpsets often include help files and control files. The help files and control files typically permit a user to interact with a number of help system features including table of content features, index features, and search features. For example, help systems associated with simple text editor applications usually provide a user with information on how to perform a specific edit action. The user can typically use a search function based on some chosen keywords to find the information and/or the user can also typically use a keyword index or a table of contents to find the information.
Helpsets are typically developed as part of documentation activities for the associated applications. There are typically three phases in helpset related document production, including (1) authoring; (2) helpset management; and (3) packaging or “building” (i.e., creation of output, such as jar files). Traditionally a number of these activities are manually performed. For example, manually editing map files, manually creating a full-test-search index, etc. The manual activities required to build traditional helpsets is usually very resource intensive and complicated. Modern applications are typically very extensive and helpset document production is often a team effort. Coordinating between different authors is typical difficult for traditional approaches to helpset building that rely on significant manual interaction. For example, if two different authors attempt to build separate table of contents manually, integrating them is usually very difficult.
Attempts at using common traditional help authoring tools to build helpsets are often inefficient. Several separate tools requiring extensive knowledge and manual coordination usually have to be utilized in order to complete the entire help “mechanism” or system. This tends to result in a number of problems associated with coordination issues. For example, there tend to be a number of problems in the control files (e.g., bugs in full-test-search functions) and there are often a number of quality concerns (e.g., HTML files can include a number of unnecessary comments and/or tags). Traditional attempts at addressing such problems (e.g., manually writing scripts) are labor intensive and typically require multiple steps including decompressing files (e.g., un-jarring the files), fixing problems (e.g., program bugs), and recompressing the files. Coordination of helpset information (e.g., coordination of sub-helpsets) is usually a difficult task.